
package com.google.earth.kml;

import java.util.ArrayList;
import java.util.List;

/** 
 * Schema fragment(s) for this class:
 * <pre>
 * &lt;xs:complexType xmlns:ns="http://earth.google.com/kml/2.1" xmlns:xs="http://www.w3.org/2001/XMLSchema" abstract="true" name="FeatureType">
 *   &lt;xs:complexContent>
 *     &lt;xs:extension base="ns:ObjectType">
 *       &lt;xs:sequence>
 *         &lt;xs:element type="xs:string" name="name" minOccurs="0"/>
 *         &lt;xs:element type="xs:boolean" default="1" name="visibility" minOccurs="0"/>
 *         &lt;xs:element type="xs:boolean" default="1" name="open" minOccurs="0"/>
 *         &lt;xs:element type="xs:string" name="address" minOccurs="0"/>
 *         &lt;xs:element type="xs:string" name="phoneNumber" minOccurs="0"/>
 *         &lt;xs:element type="ns:SnippetType" name="Snippet" minOccurs="0"/>
 *         &lt;xs:element type="xs:string" name="description" minOccurs="0"/>
 *         &lt;xs:element ref="ns:LookAt" minOccurs="0"/>
 *         &lt;xs:element ref="ns:TimePrimitive" minOccurs="0"/>
 *         &lt;xs:element ref="ns:styleUrl" minOccurs="0"/>
 *         &lt;xs:element ref="ns:StyleSelector" minOccurs="0" maxOccurs="unbounded"/>
 *         &lt;xs:element ref="ns:Region" minOccurs="0"/>
 *         &lt;xs:element type="ns:MetadataType" name="Metadata" minOccurs="0"/>
 *       &lt;/xs:sequence>
 *     &lt;/xs:extension>
 *   &lt;/xs:complexContent>
 * &lt;/xs:complexType>
 * </pre>
 */
public abstract class FeatureType extends ObjectType
{
    private String name;
    private Boolean visibility;
    private Boolean open;
    private String address;
    private String phoneNumber;
    private SnippetType snippet;
    private String description;
    private LookAtType lookAt;
    private TimePrimitiveType timePrimitive;
    private StyleUrl styleUrl;
    private List<StyleSelectorType> styleSelectorList = new ArrayList<StyleSelectorType>();
    private RegionType region;
    private MetadataType metadata;

    /** 
     * Get the 'name' element value.
     * 
     * @return value
     */
    public String getName() {
        return name;
    }

    /** 
     * Set the 'name' element value.
     * 
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /** 
     * Get the 'visibility' element value.
     * 
     * @return value
     */
    public Boolean getVisibility() {
        return visibility;
    }

    /** 
     * Set the 'visibility' element value.
     * 
     * @param visibility
     */
    public void setVisibility(Boolean visibility) {
        this.visibility = visibility;
    }

    /** 
     * Get the 'open' element value.
     * 
     * @return value
     */
    public Boolean getOpen() {
        return open;
    }

    /** 
     * Set the 'open' element value.
     * 
     * @param open
     */
    public void setOpen(Boolean open) {
        this.open = open;
    }

    /** 
     * Get the 'address' element value.
     * 
     * @return value
     */
    public String getAddress() {
        return address;
    }

    /** 
     * Set the 'address' element value.
     * 
     * @param address
     */
    public void setAddress(String address) {
        this.address = address;
    }

    /** 
     * Get the 'phoneNumber' element value.
     * 
     * @return value
     */
    public String getPhoneNumber() {
        return phoneNumber;
    }

    /** 
     * Set the 'phoneNumber' element value.
     * 
     * @param phoneNumber
     */
    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    /** 
     * Get the 'Snippet' element value.
     * 
     * @return value
     */
    public SnippetType getSnippet() {
        return snippet;
    }

    /** 
     * Set the 'Snippet' element value.
     * 
     * @param snippet
     */
    public void setSnippet(SnippetType snippet) {
        this.snippet = snippet;
    }

    /** 
     * Get the 'description' element value.
     * 
     * @return value
     */
    public String getDescription() {
        return description;
    }

    /** 
     * Set the 'description' element value.
     * 
     * @param description
     */
    public void setDescription(String description) {
        this.description = description;
    }

    /** 
     * Get the 'LookAt' element value.
     * 
     * @return value
     */
    public LookAtType getLookAt() {
        return lookAt;
    }

    /** 
     * Set the 'LookAt' element value.
     * 
     * @param lookAt
     */
    public void setLookAt(LookAtType lookAt) {
        this.lookAt = lookAt;
    }

    /** 
     * Get the 'TimePrimitive' element value.
     * 
     * @return value
     */
    public TimePrimitiveType getTimePrimitive() {
        return timePrimitive;
    }

    /** 
     * Set the 'TimePrimitive' element value.
     * 
     * @param timePrimitive
     */
    public void setTimePrimitive(TimePrimitiveType timePrimitive) {
        this.timePrimitive = timePrimitive;
    }

    /** 
     * Get the 'styleUrl' element value.
     * 
     * @return value
     */
    public StyleUrl getStyleUrl() {
        return styleUrl;
    }

    /** 
     * Set the 'styleUrl' element value.
     * 
     * @param styleUrl
     */
    public void setStyleUrl(StyleUrl styleUrl) {
        this.styleUrl = styleUrl;
    }

    /** 
     * Get the list of 'StyleSelector' element items.
     * 
     * @return list
     */
    public List<StyleSelectorType> getStyleSelectorList() {
        return styleSelectorList;
    }

    /** 
     * Set the list of 'StyleSelector' element items.
     * 
     * @param list
     */
    public void setStyleSelectorList(List<StyleSelectorType> list) {
        styleSelectorList = list;
    }

    /** 
     * Get the 'Region' element value.
     * 
     * @return value
     */
    public RegionType getRegion() {
        return region;
    }

    /** 
     * Set the 'Region' element value.
     * 
     * @param region
     */
    public void setRegion(RegionType region) {
        this.region = region;
    }

    /** 
     * Get the 'Metadata' element value.
     * 
     * @return value
     */
    public MetadataType getMetadata() {
        return metadata;
    }

    /** 
     * Set the 'Metadata' element value.
     * 
     * @param metadata
     */
    public void setMetadata(MetadataType metadata) {
        this.metadata = metadata;
    }
}
